/* 弹性布局基础 */
.flex {
    display: flex;
    transition: all 0.3s ease;
}

/* 方向 */
.flex-row {
    flex-direction: row;
}

.flex-column {
    flex-direction: column;
}

.flex-row-reverse {
    flex-direction: row-reverse;
}

.flex-column-reverse {
    flex-direction: column-reverse;
}

/* 换行 */
.flex-wrap {
    flex-wrap: wrap;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

.flex-wrap-reverse {
    flex-wrap: wrap-reverse;
}

/* 主轴对齐 */
.flex-start {
    justify-content: flex-start;
}

.flex-center {
    justify-content: center;
}

.flex-end {
    justify-content: flex-end;
}

.flex-between {
    justify-content: space-between;
}

.flex-around {
    justify-content: space-around;
}

.flex-evenly {
    justify-content: space-evenly;
}

/* 交叉轴对齐 */
.flex-items-start {
    align-items: flex-start;
}

.flex-items-center {
    align-items: center;
}

.flex-items-end {
    align-items: flex-end;
}

.flex-items-baseline {
    align-items: baseline;
}

.flex-items-stretch {
    align-items: stretch;
}

/* 内容对齐 */
.flex-content-start {
    align-content: flex-start;
}

.flex-content-center {
    align-content: center;
}

.flex-content-end {
    align-content: flex-end;
}

.flex-content-between {
    align-content: space-between;
}

.flex-content-around {
    align-content: space-around;
}

/* 间距 */
.flex-gap-xs {
    gap: 4px;
}

.flex-gap-small {
    gap: 8px;
}

.flex-gap-medium {
    gap: 16px;
}

.flex-gap-large {
    gap: 24px;
}

.flex-gap-xl {
    gap: 32px;
}

/* 弹性 */
.flex-0 {
    flex: 0;
}

.flex-1 {
    flex: 1;
}

.flex-2 {
    flex: 2;
}

.flex-3 {
    flex: 3;
}

.flex-auto {
    flex: auto;
}

.flex-none {
    flex: none;
}

/* 增长和收缩 */
.flex-grow-0 {
    flex-grow: 0;
}

.flex-grow-1 {
    flex-grow: 1;
}

.flex-shrink-0 {
    flex-shrink: 0;
}

.flex-shrink-1 {
    flex-shrink: 1;
}

/* 组合 */
.flex-center {
    justify-content: center;
    align-items: center;
}

.flex-between-center {
    justify-content: space-between;
    align-items: center;
}

.flex-column-center {
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

/* 响应式 */
@media (max-width: 600px) {
    .flex-responsive-column {
        flex-direction: column;
    }
    
    .flex-gap-medium {
        gap: 12px;
    }
}
